--
--   Title: Nishan iSCSI Configuration MIB
--   Description: 
--   This MIB contains management objects for Nishan iSCSI configuration. 
--   This MIB is supported on IPS Series 3000, 4000 and 5000 switches.
--   Version 1.1
--
--  Revision history:
--
--  05/29/01: initial version released.
--   
--  06/06/01: removed iscsiSessionTable. It duplicates info in the standard iSCSI MIB.
--
--  06/20/01: moved origin from {nishanMgmt 13} to {nishan 10}
--
--  06/26/01: changed size for iscsiDevName and iscsiDevAlias
--
--  06/28/01: made iscsiDevAlias read-create instead of read-only
--            added iscsiDevRole
--            added isnsLocateTable
--            added isnsAddressTable
--            added iscsiZone2DDTable
--            increased MIB version to 1.1
--
--  06/29/01: added "both" enumerated value to iscsiDevRole
--
--  07/09/01: updates from MIB review: move typedefs to NISHAN-SMI, add more default
--  values, reword some descriptions.
--
--  07/11/01: FcWWN and FcID typedefs were renamed as WWNtype and FCIDtype for backward
--  compatibility.
--
--  07/24/01: remove isnsLocateTable (duplicated in IETF iSNS MIB) 
--            remove port index from isnsAddressTable (no longer port-specific)
--            change iscsiZone2DDTable index from arbitrary integer to zone ID.
--
--  07/31/02: added isciDevAdminStatus and iscsiInitiatorAutoRegister to auto-configure 
--            iSCSI initiators.
--            
--  08/07/02: remove iSNS portion of MIB (duplicate of iSNS MIB)
--            remove imports referenced in the iSNS portion of the mib.
--
--  03/12/03: Included support for IPS 5000 series.
--
--  11/06/03: Add iscsiDevicesMaxEntries and iscsiDevicesCurrentEntries
--

NISHAN-ISCSI DEFINITIONS ::= BEGIN

IMPORTS
     MODULE-IDENTITY,
     OBJECT-TYPE,
     IpAddress
          FROM SNMPv2-SMI
     DisplayString,
     RowStatus
          FROM SNMPv2-TC
     nishan,
     WWNtype,
     FCIDtype
          FROM NISHAN-SMI
;

nishanISCSI     MODULE-IDENTITY
      LAST-UPDATED     "0105220000Z"
      ORGANIZATION     "Nishan Systems, Inc"
      CONTACT-INFO     "Nishan Systems, Inc
             Attn: Network Management
                3850 North First Street
                San Jose, CA 95134
                USA
                Tel : +1 408 519-3700
                email : snmp@nishansystems.com"
     DESCRIPTION  "The private MIB for Nishan iSCSI device configuration"
     REVISION     "0105220000Z"
     DESCRIPTION
                 "Initial public release of this MIB module"
  ::=  {  nishan 10  }



-- =======================================================================
-- iSCSI Device Configuration
-- =======================================================================

--
-- iSCSI Device Table
--
-- This table contains one row for each iSCSI device connected to this switch.
-- The table shows the mapping from the iSCSI description to the mFCP information
-- registered in SNS.
--
-- iSCSI devices are not discovered.  They must be manually configured on the
-- switch, so the switch can register with SNS as a proxy for the iSCSI devices.
--
-- The user must manually configure the iSCSI Name, IP address, IP port, and
-- switch port in the table below.  The iSCSI Alias is learned dynamically from
-- the device, but may be supplied by the user if not configured on the device.  
-- The port and node WWNs and SoIP socket number are generated by the switch.  
--

iscsiDeviceTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF IscsiDeviceEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   
"This table contains information on how each iSCSI device connected 
to this switch is mapped to SNS registration information."
        ::= { nishanISCSI 1 }

iscsiDeviceEntry OBJECT-TYPE
        SYNTAX        IscsiDeviceEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Entry containing info for a particular iSCSI device."
        INDEX         { iscsiDevIndex }
        ::= { iscsiDeviceTable 1 }

IscsiDeviceEntry ::= SEQUENCE {
        iscsiDevIndex               INTEGER,
        iscsiDevName                DisplayString,
        iscsiDevIpAddress           IpAddress,
        iscsiDevTcpPort             INTEGER,
        iscsiDevSwitchPort          INTEGER,
        iscsiDevAlias               DisplayString,
        iscsiDevRole                INTEGER,
        iscsiDevPortWWN             WWNtype,
        iscsiDevNodeWWN             WWNtype,
        iscsiDevSoIPSocket          FCIDtype,
        iscsiDevAdminStatus         INTEGER,
        iscsiDevRowStatus           RowStatus
        }

iscsiDevIndex OBJECT-TYPE
        SYNTAX          INTEGER (1..500)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION   
"An arbitrary index value that identifies this iSCSI device."
        ::= { iscsiDeviceEntry 1 }

iscsiDevName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..255))
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: { 0:all }
The unique iSCSI device name, or the default name 'iscsi'.  iSCSI names
must be unique within the SAN.  iSCSI names are intended to be world-wide 
unique. True names may be either fully qualified names (e.g., iqn.com.acme.sn333)
or an IEEE EUI name (e.g., eui.02004567A25678D).  See internet draft
draft-ietf-ips-iscsi-name-disc-02.txt for more details of iSCSI names.
When the iSCSI device is registered in SNS, the iSCSI name is used for
the Symbolic Node Name."
        ::= {iscsiDeviceEntry 2}

iscsiDevIpAddress OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: { 0:all }
The IP address of the iSCSI device."
        ::= {iscsiDeviceEntry 3}

iscsiDevTcpPort OBJECT-TYPE
        SYNTAX          INTEGER (0..65535)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: { 0:all }
The IP port number for the iSCSI device.  IANA will assign a default 
port number for iSCSI devices, but for now different manufacturers 
use different ports. The port may be 0 for initiators."
        ::= {iscsiDeviceEntry 4}

iscsiDevSwitchPort OBJECT-TYPE
        SYNTAX          INTEGER (1..16)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: { 0:all }
The local switch's port to be used for traffic to the iSCSI device, 
if the iSCSI device is not on a locally-attached subnet.  The 
Series 3000/4000/5000 switches perform only static routing (they do  
not learn routes on iSCSI interfaces by listening to route advertisements).
The default gateway specified for the port identified by this variable
becomes the next hop for outgoing iSCSI traffic."
        ::= {iscsiDeviceEntry 5}

iscsiDevAlias OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..80))
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: { 0:all }
A user-friendly name to describe this iSCSI device.  The alias may be
set manually on the Nishan IP Storage Switch, or configured on the
iSCSI device and learned by the IP Storage Switch.  If an alias is
configured on the iSCSI device, it will replace an alias entered on 
the IP Storage Switch. The alias becomes the port symbolic name when 
the device is registered with SNS."
        DEFVAL          { "" }
        ::= {iscsiDeviceEntry 6}

iscsiDevRole OBJECT-TYPE
        SYNTAX          INTEGER { initiator(1), target(2), both(3) }
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: { 2:all }
Specifies whether the iSCSI device is an initiator, a target, or both.
The 'both' option allows a device that shares the same IP address for
target and initiator functions to be entered in the iscsiDeviceTable just
once.  Devices that use different IP addresses for the initiator and
target functions, or initiators that use more than one IP address, are 
entered in the iscsiDeviceTable once for each address."
        DEFVAL          { target }
        ::= {iscsiDeviceEntry 7}

iscsiDevPortWWN OBJECT-TYPE
        SYNTAX          WWNtype
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "
The port World-Wide Name assigned to this iSCSI device.  The
IPS 3000/4000/5000 Series switch generates this WWN in order to register the 
iSCSI device with the Storage Name Service."  
        ::= {iscsiDeviceEntry 8}

iscsiDevNodeWWN OBJECT-TYPE
        SYNTAX          WWNtype
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "
The node World-Wide Name assigned to this iSCSI device.  The
IPS 3000/4000/5000 Series switch generates this WWN in order to register the 
iSCSI device with the Storage Name Service."  
        ::= {iscsiDeviceEntry 9}

iscsiDevSoIPSocket OBJECT-TYPE
        SYNTAX          FCIDtype
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "
The IP Storage socket number generated by the IPS 3000/4000/5000 Series switch 
to register the iSCSI device with the Storage Name Service.  The socket 
number for FC devices is the 3-byte FCID."
        ::= {iscsiDeviceEntry 10}

iscsiDevAdminStatus OBJECT-TYPE
        SYNTAX          INTEGER {enable(1), disable(2)}
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "DURABLE: {enable}   
This field is used to enable/disable the admin status of the iSCSI device. 
If enabled, then the device is registered into SNS."
        ::= { iscsiDeviceEntry 11 }

iscsiDevRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     
"This variable is used to create and delete rows in iscsiDeviceTable,
according to the SNMPv2 RowStatus convention.  Possible values are:
        active (1),         read-write
        notInService (2),   read-write
        notReady (3),       read-only
        createAndGo (4),    write-only
        createAndWait (5),  write-only
        destroy (6),        write-only
To delete an iSCSI device, set iscsiDevRowStatus to destroy(6).  To 
create a new iSCSI device, the agent requires this sequence:
        set iscsiDevRowStatus to createAndWait(5) for an unused index value.
        set other column values.
        set iscsiDevRowStatus to active(1).
The values notInService(2), notReady(3), and createAndGo(4) are not supported.
If any column, including iscsiDevName or iscsiDevIpAddress, is updated
by setting the variable with an existing index, then the existing SNS information
(WWNs and SoIP socket) are used for the new iSCSI information.  If a table row
is deleted and re-added, new SNS information (WWNs and SoIP socket) may be created."
        ::= {iscsiDeviceEntry 12}

iscsiInitiatorAutoRegister OBJECT-TYPE
        SYNTAX          INTEGER {true(1), false(2)}
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "DURABLE: {false}   
This scalar is used to determine if all initiator logins should automatically
be allowed to register with SNS."
        ::= { nishanISCSI 2 }

iscsiDevicesMaxEntries OBJECT-TYPE
        SYNTAX          INTEGER (1..512)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
"This scalar is used to report the maximum number of iSCSI devices supported in the switch.  In the v4.x release, the maximum number of iSCSI devices is 50."
        ::= { nishanISCSI 3 }
 
iscsiDevicesCurrentEntries OBJECT-TYPE
        SYNTAX          INTEGER (0..512)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
"This scalar is used to report the number of iSCSI devices that are currently configured, manually or automatically logged, in the switch."
        ::= { nishanISCSI 4 }

END